A Fault Localization Prioritization: Comparing Information Theoretic and Coverage Based Approaches
نویسندگان
چکیده
Fault localization can be used to prioritize the statements of a program according to the likelihood that each contains a fault that causes a known failure [Jones et al. 2002; Renieres and Reiss 2003]. Regression test prioritization is used to order statements according to early achievement of some testing goal such as coverage [Elbaum et al. 2000; Li et al. 2007; Rothermel et al. 2001; Yoo and Harman 2012]. Regression testing and fault localization are naturally complementary: we test to see if change has introduced a fault and, if we discover that it has, we switch from regression testing to fault localization as a first step towards fault fixing. Having fixed the fault we switch back to regression testing and so the cycle continues. This ‘test–find–fix’ cycle is familiar to many software engineers. Complete execution of all test cases in a regression test suite can be slow; execution times of up to seven weeks have been reported in the literature [Rothermel et al. 2001]. For larger test suites, it may not be realistic to expect the engineer to wait for all test cases to be executed before they can start work on fault fixing. Also, it may not be worth executing all test cases, once the first failure has been detected. In many scenarios, as soon as the first failure is detected, the engineer will want to switch from testing to fixing. Even if the engineer does not wish to make this switch at the first failure, there may be, at some subsequent test execution, a failure for which the engineer will want to switch from testing to fixing: for example, if the engineer expects that the failure is important, or requires immediate action. Also, if the engineer expects that the fault which causes the currently detected failure will also cause many cascaded downstream failures, then it would be wasteful to have to wait for regression testing to continue, flagging up all such cascaded errors in the process. There are many situations where this switch between testing and fixing may occur, particularly when many faults have been inserted. In such a situation, regression testing will be
منابع مشابه
Prioritizing Test Cases For Regression
Test case prioritization techniques schedule test cases for execution in an order that attempts to increase their eeectiveness at meeting some performance goal. Various goals are possible; one involves rate of fault detection | a measure of how quickly faults are detected within the testing process. An improved rate of fault detection during testing can provide faster feedback on the system und...
متن کاملRegression Test Selection and Prioritization Using Variables: Analysis and Experimentation
reducing test suite size without compromising the suite’s effectiveness in performing regression testing. This article presents a hybrid technique using the variable-based method that combines both selection and prioritization. It considers source code changes and coverage information with respect to each test case. Variables are the vital source of changes in the program, and this method captu...
متن کاملAssessment and Comparison of Fuzzy Based Test Suite Prioritization Method for GUI Based Software
The testing of event driven software has significant role to improve overall quality of software. Due to event driven nature of GUI based software many test cases are generated and it is difficult to identify test cases whose fault revealing capability is high. To identify those test cases test suite prioritization is done. Various test suite prioritization methods exists for GUI based software...
متن کاملPrioritization of Test Cases using Branch Coverage with Multiple criteria for Regression Testing
Prioritization of test cases is generally done to reduce the cost of regression testing. We prioritize our test cases so that those which are more important, by some measure, are made to run earlier in the testing phase. There exists a large variety of prioritization techniques in the literature, we have basically used coverage-based prioritization techniques (i.e., prioritization in terms of t...
متن کاملAn Application of Adaptive Random Sequence in Test Case Prioritization
Test case prioritization aims to schedule test cases in a certain order such that the effectiveness of regression testing can be improved. Prioritization using random sequence is a basic and simple technique, and normally acts as a benchmark to evaluate other prioritization techniques. Adaptive Random Sequence (ARS) makes use of extra information to improve the diversity of random sequence. Som...
متن کامل